home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
lanos.exe
/
NOS.INC
< prev
next >
Wrap
Text File
|
1992-01-04
|
14KB
|
330 lines
CONST
D_NAMSZ = 16 ; { Length of a name }
{ User account structure }
TYPE
DWORD = Record
HiWord : Word;
LoWord : Word;
END;
user_account = RECORD
UA_name : Array[00..(D_NAMSZ-1)] of Char; { Zero padded username }
UA_internal : Array[00..(D_NAMSZ-1)] of Char;
UA_description : Array[00..31] of Char; { Full user description }
UA_privilege : Byte; { Privilege bits }
{ (see definitions below) }
UA_concurrent : Byte; { Maximum concurrent log ins }
UA_allowed_times : Array[00..41] of Byte; { 1 bit for each half hour for 7 }
{ days. Week begins Sunday. }
{ 0 means allowed. }
UA_internal2 : Word;
UA_last_login_time : Array[00..01] of Word; { Last time logged in }
UA_account_expiration : Array[00..01] of Word; { Expiration date (MSDOS-format) }
{ Year, Month:Day }
UA_password_expiration : Array[00..01] of Word; { Expiration date (as above) }
{ 0 means no expiration date. }
UA_password_extension : Byte; { 1-31 Number of days to reextend }
{ password after change, 0 says no }
{ extension required }
UA_undelete_char : Byte; { First letter of UA_name when }
{ account is deleted (first }
{ character of UA_name is replaced }
{ with a zero.) }
UA_xprivilege : Byte; { Extended privilege }
UA_future : Array[00..02] of Byte;
END;
{ Privilege bits for UA_privilege: }
CONST
UA_privilege_superACL = $80; { Bypass ACLs }
UA_privilege_superqueue = $40; { Bypass queue protection }
UA_privilege_peer = $20; { Treat as local process }
UA_privilege_supermail = $10; { Bypass mail protection }
UA_privilege_audit = $08; { User can create audit entries }
UA_privilege_system = $04; { User has system manager privileges }
UA_xprivilege_nopwchange = $01; { User cannot change password }
MB_textlen = 80; { Length of message text buffer }
TYPE { Message buffer structure }
message_buffer = RECORD
MB_reserved : Byte; { Reserved field used by system call }
MB_type : Byte; { User defined message type }
{ (see below) }
MB_machine : Array[00..(D_NAMSZ-1)] of Char; { Machine name destination }
MB_server : Array[00..(D_NAMSZ-1)] of Char; { User must be logged into this }
{ server }
MB_user : Array[00..(D_NAMSZ-1)] of Char; { User must be using this username }
MB_originator : Array[00..(D_NAMSZ-1)] of Char; { Originator's machine name. }
{ Filled when message is received }
MB_text : Array[00..(MB_textlen-1)] of Char; { Message text }
END;
{ Message buffer type. }
CONST
MBT_general = 0; { General msg used by NET and others }
MBT_warning = 1; { Server warning message }
{ Message service disposition }
MPB_beep = $01; { Beep before delivering message }
MPB_deliver = $02; { Deliver to message service }
MPB_auto_pop_up = $04; { Pop up messages automatically }
{ Definition of a queue entry: }
TYPE
queue_entry = RECORD
QE_status : Byte; { Status of queue entry }
QE_size : DWORD; { Size of spooled file }
QE_type : Byte; { Type of queue entry }
QE_output_control : Byte; { Control of despooled file }
QE_copies : Word; { Number of copies }
QE_sequence : DWORD; { Sequence number of queue entry }
QE_spooled_file : Array[00..47] of Char; { Pathname of spooled file }
QE_user : Array[00..(D_NAMSZ-1)] of Char; { Username who spooled file }
QE_machine : Array[00..(D_NAMSZ-1)] of Char; { Machine name user was on }
QE_date : Word; { Date file spooled (MS-DOS format) }
QE_time : Word; { Time file spooled (MS-DOS format) }
QE_destination : Array[00..D_NAMSZ] of Char; { ASCIZ Device or username destn. }
QE_comment : Array[00..47] of Char; { Comment field }
END;
CONST
{ Different queue entry statuses }
QE_status_free = 0; { The queue entry is empty }
QE_status_update = 1; { The queue entry is being updated }
QE_status_hold = 2; { The queue entry is held }
QE_status_wait = 3; { The queue entry is waiting for despool }
QE_status_active = 4; { The queue entry is being despooled }
QE_status_cancel = 5; { The queue has been canceled }
QE_status_file_error = 6; { The spooled file could not be accessed }
QE_status_spool_error = 7; { The destination could not be accessed }
QE_status_rush = 8; { Rush this job }
{ Different types of queue entries: }
QE_type_print = 0; { Spooled printer queue file }
QE_type_message = 1; { Spooled message (mail) }
QE_type_local_file = 2; { Spooled local file }
QE_type_remote_file = 3; { Spooled remote file }
QE_type_modem = 4; { Spooled to remote modem }
QE_type_batch = 5; { Spooled batch processor file }
{ Definitions for output control: }
QE_OC_keep = $40; { Keep after despooling (don't delete) }
{ Used for mail - allow delete only by owner }
{ Definitions for mail }
QE_OC_voice = $20; { Mail file contains voice data }
QE_OC_opened = $10; { Message has been read }
QE_OC_request_response = $04; { Response requested }
{ Control queue commands. }
CQ_start = 0; { Start despooling }
CQ_halt = 1; { Halt despooling }
CQ_halt_EOJ = 2; { Halt despooling at end of job }
CQ_pause = 3; { Pause the despooler at end of job }
CQ_single = 4; { Print single job }
CQ_restart = 5; { Restart the current print job }
CQ_cancel = 6; { Cancel the currently printing job }
CQ_hold = 7; { Hold the queue entry }
CQ_release = 8; { Release a held queue entry }
CQ_rush = 9; { Make the queue entry a rushed job }
TYPE
{ Definition of printer states: }
printer_state = RECORD
PS_state_pause : Byte; { Set 1 when printer paused }
PS_state_value : Byte; { Set to PS_state_ value (see below) }
END;
CONST
PS_state_disabled = 0; { Printer is disabled }
PS_state_single_job = 1; { Printer will stop at end of job }
PS_state_multijob = 2; { Printer should print multiple jobs }
TYPE
{ Definition of a printer status entry: }
PS = RECORD
{ Printer state }
PS_state : Byte;
PS_index : Word; { Queue index corresponding to print job }
{ being despooled. -1 if not despooling. }
PS_CPS : Word; { Actual characters per second being output }
PS_output_chars : DWORD; { Characters actually output so far }
PS_read_chars : DWORD; { Characters actually read from despooled }
{ file so far. May be used to compute }
{ percent completed. }
PS_copies : Word; { Copies remaining to print }
END;
{ Definition of logical stream entry: }
logical_stream = RECORD
LS_queue : Byte; { 0 Disabled, non-zero Enabled }
LS_template : Array[00..12] of Char;{ Template may contain ?'s (include "." as }
{ in @???????.???) }
END;
{ Definition of active user entry: }
active_user_entry = RECORD
AUE_VCID : Word; { Virtual circuit number }
AUE_state : Byte; { Login state (defined below) }
AUE_command : Byte; { Last command issued }
AUE_IO : Array[00..04] of Byte; { Number of I/O bytes (40 bit number